package com;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * 迭代器
 * 
 * Iterator it = 集合对象.iterator();
 * 
 * 调用结合对象自己的 iterator() 就能创建这个集合的迭代器
 * 
 * 迭代器中有三个方法 
 * 		1.boolean hasNext() : 判断当前游标的下一位是否还有元素,有就返回 true 没有就返回 false
 * 		2.E next() : 将迭代器的游标向下移动一位,并返回这个数据
 * 		3.remove() : 删除当前游标指向的元素
 * 
 * 原则上,上面三个方法必须按照这个顺序调用
 * 
 * 迭代器一旦创建,集合中不能添加或删除元素,如果添加或删除了集合中的元素,需要重新生成迭代器
 * 但是更改里面的数据,不用重新生成
 * 
 * @author lenovo
 * @Date 2020年7月16日
 * @Time 下午7:08:09
 */
public class Collection_02 {

	public static void main(String[] args) {
		Collection c = new ArrayList();
		c.add(1);
		c.add("1wq3");
		c.add(false);
		c.add(12.32);

		// 创建迭代器
		Iterator it = c.iterator();

		// 如果添加或删除数据之后,一定要重新生成迭代器
		c.add(2);
		it = c.iterator();

		while (it.hasNext()) {
			Object o = it.next();
			System.out.println(o);
		}

		// 1.迭代器使用完成之后,不会自动复原,需要重新创建才能再次遍历
		Iterator it1 = c.iterator();
		while (it1.hasNext()) {
			Object o = it1.next();
			System.out.println(o);
		}
	}

}
